Web3的provider的正确使用 |
您所在的位置:网站首页 › 知乎 web3 的 provider到底是什么 › Web3的provider的正确使用 |
我们在进行测试的时候,如果使用ganache,那么就是会用ganache提供的provider const web3 = new Web3(ganache.provider());我们进行合约部署的时候,可以使用infura提供的provider let provider = new HDWalletProvider(mnemonic, "https://rinkeby.infura.io/v3/2b86c426683f4a6095fd175fe931d799"); const web3 = new Web3(provider);但是注意上面的mnemonic是12个账户助记词,这12个词是合约部署者的 在和以太坊的交互中,面对的成千上百的用户,如果用户都使用部署者的账户,大量的操作消耗gas都是部署者的账户中的钱 因此在交互中,这里应该换为用户使用的钱包的provider,例如metamask的provider 我们只要装了metamask插件,那么浏览器中就被注入了web3 浏览器的web3.png没装当然就是没有的 浏览器无web3.png 因此我们是可以拿到用户的provider的但是!!! 低版本Web3.png 这个web3的版本是相当低的,1.0的在进行紧张的测试中,还未在该插件中上线 但是我们开发使用的就是1.0的,如何让1.0版本的web3使用0.2版本的provider呢?上面的情况打个比方: 我们给用户提供了高版本的iphone,但是没有也不能提供电话卡,不能打电话 metamask提供了低版本的诺基亚,有电话卡,能打电话 那么我们就需要用户使用我们的iphone,并且把诺基亚的卡插进来 我们使用新的模块web3.js组合web3 import Web3 from 'web3';//ipone without card const web3 = new Web3(window.web3.currentProvider);//use NOKIA card export default web3;//export iphone with nokia card导出后我们在其他的模块中使用的就是这个组装web3 注意,window.web3.currentProvider能找到一定是要装了metamask或者类似插件 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |